package com.xiaoshuidi.cloud.module.iot.dal.model.hikvision;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * @Author Feng
 * @date 2023/6/26
 */
@Data
public class AddFaceReqDto {


    /**
     * 必须
     * 指定人脸添加到的人脸分组的唯一标识,人脸监控应用服务会校验该值的有效性，
     * 可从[按条件查询人脸分组]@[软件产品-综合安防管理平台-API列表-人脸应用服务-人脸管理#按条件查询人脸分组]接口返回报文中的indexCode字段
     */
    @Schema(description = "指定人脸添加到的人脸分组的唯一标识")
    private String faceGroupIndexCode;
    @Schema(description = "人脸信息")
    private FaceInfo faceInfo;
    @Schema(description = "人脸图片")
    private FacePic facePic;

    @Data
    public static class FaceInfo {
        /**
         * 人脸的名称,1~32个字符；不能包含 ' / \\ : * ? \" < > | 这些特殊字符。必填
         */
        @Schema(description = "人脸的名称")
        private String name;
        /**
         * 人脸的性别信息， 1-男性，2-女性，UNKNOWN-未知。 非必填
         */
        @Schema(description = "人脸的性别信息")
        private String sex;
        /**
         * 人脸的证件类别，111-身份证，OTHER-其它证件。 非必填
         */
        @Schema(description = "人脸的证件类别")
        private String certificateType;
        /**
         * 人脸的证件号码信息。1~20个数字、字母。 非必填
         */
        @Schema(description = "人脸的证件号码信息")
        private String certificateNum;
    }

    @Data
    public static class FacePic {
        /**
         * 人脸图片的URL。和faceBinaryData不能同时为空，同时存在时优先取faceBinaryData；
         * 图片的大小范围在10KB到200KB之间，只支持JGP格式图片。
         */
        @Schema(description = "人脸图片的URL")
        private String faceUrl;
        /**
         * 人脸图片的二进制数据经过Base64编码后的字符串，和faceUrl不能同时为空，同时存在时优先取faceBinaryData。
         * 图片的大小范围在10KB到200KB之间，只支持JGP格式图片。 最大长度：200*1024
         */
        @Schema(description = "人脸图片的二进制数据")
        private String faceBinaryData;
    }
}
